Remote medical device access

ABSTRACT

Systems, client computing devices, server computing devices, and methods are disclosed for accessing medical devices, providing remote access to medical devices and/or remotely accessing medical devices. In one exemplary embodiment, client computing devices utilize protocol components that may be obtained from a server computing device via a network to communicate with medical devices in a communications protocol supported by the medical device.

REFERENCE TO RELATED APPLICATIONS

The present application is a Continuation of U.S. patent applicationSer. No. 09/866,260, filed May 25, 2001, which is hereby incorporated byreference in its entirety.

FIELD OF THE INVENTION

The present invention relates generally to medical devices, and moreparticularly to remote medical device access.

BACKGROUND OF THE INVENTION

Patients commonly use medical devices to monitor various biologicaland/or physiological conditions. For example, patients with diabetesoften utilize a blood glucose meter to monitor their blood glucoselevels periodically. However, medical devices are also used formonitoring and/or analyzing biological/physiological parameters orconditions such as body fluids or bodily functions (e.g. blood, urine,saliva), bodily signals (e.g. electrocardio-signals, brain waves, bloodpressure waves), and/or other bodily stimuli (e.g. respiration) toobtain measurements of blood pressure, blood gases, blood coagulation,electrolytes, cardiovascular activity, drug levels, respiration rate,stress, etc. These medical devices often store measurement data whichmay be retrieved, archived, and/or analyzed. Physicians, nurses,technicians, and patients typically find such measurement data useful inassessing the patient's health, in assessing the effectiveness ofmedications and other treatments, and in adjusting a patient's currenttreatment regime to obtain better health for the patient.

To facilitate retrieval of data, the above medical devices typicallyinclude a communications port which allows communication with anotherdevice such as a computer. Furthermore, the medical devices are oftenimplemented such that a computing device may control the medical deviceand adjust various operating parameters via the communications port.However, in order to retrieve the data from the medical device, controlthe medical device, and/or adjust various operating parameters of themedical device via the communications port, the computing device must beconfigured to communicate with the medical device via a communicationsprotocol designed for the specific medical device.

SUMMARY OF THE INVENTION

Systems, client computing devices, server computing devices, and methodsare disclosed for accessing medical device, providing remote access tomedical devices, and/or remotely accessing medical devices. Inaccordance with one embodiment of the present invention, there isprovided a method for accessing a medical device operably coupled to acomputing device. One step of the method includes receivingidentification information from the computing device that is indicativeof a medical device type. Another step of the method includestransferring a protocol component to the computing device based upon theidentification information. The method further includes the step ofreceiving measurement data from the medical device in response to thecomputing device communicating with the medical device via the protocolcomponent.

Pursuant to another embodiment of the present invention, there isprovided a method of providing a computing device with remote access toa medical device. One step of the method includes providing thecomputing device with identification information from which a protocolcomponent for use with the medical device is determined. Another step ofthe method includes receiving the proper protocol component from thecomputing device in response to providing the computing device with theidentification information. The method also includes the step ofcommunicating with the medical device via the proper protocol component.

Pursuant to another embodiment of the present invention, there isprovided a first computing device for remotely accessing a medicaldevice operably coupled to a second computing device via a network. Thefirst computing device includes a storage device comprising a pluralityof protocol components that configure the second computing device tocommunicate with a plurality of medical devices in accordance withcommunications protocols supported by the plurality of medical devices.The first computing device also includes a memory comprising a pluralityof instructions, and a network interface adapted to communicate with thesecond computing device via the network. The first computing devicefurther includes a processor operably coupled to the storage device, thememory, and the network interface. The processor is adapted to executethe plurality of instructions to cause the processor to receive from thesecond computing device via the network interface identificationinformation from which a medical device type of the medical devicecoupled to the second computing device is determined. The processor isfurther adapted to execute the plurality of instructions to cause toprovide protocol component information to the second computing devicevia the network interface which identifies the protocol component fromthe plurality of protocol components for the second computing device touse to communicate with the medical device. The processor is furtheradapted to execute the plurality of instructions to cause the processorto receive measurement data from the medical device via the networkinterface in response to the second computing device communicating withmedical device via the protocol component identified by the protocolcomponent information.

These and other features and advantages of the present invention will bemore fully understood from the following detailed description of theinvention taken together with the accompanying claims. It is noted thatthe scope of the claims is definitely by the recitations therein and notby the specific discussion of the features and advantages set forth inthe present description.

BRIEF DESCRIPTION OF THE DRAWINGS

The following detailed description of the embodiments of the presentinvention can be best understood when read in conjunction with thefollowing drawings, where like structure is indicated with likereference numerals and in which:

FIG. 1 shows a block diagram of a system which incorporates variousfeatures of the present invention therein;

FIG. 2 shows a function block diagram illustrating functional componentsof the system shown in FIG. 1;

FIG. 3 is a flowchart illustrating an exemplary method of operation forthe system of FIG. 1;

FIG. 4 is a flowchart illustrating another exemplary method of operationfor the system of FIG. 1; and

FIG. 5 is a flowchart illustrating yet another exemplary method ofoperation for the system of FIG. 1.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

While the invention is susceptible to various modifications andalternative forms, exemplary embodiments thereof have been shown by wayof example in the drawings and will herein be described in detail. Itshould be understood, however, that there is no intent to limit theinvention to the particular form disclosed, but on the contrary, theintention is to cover all modifications, equivalents, and alternativesfalling within the spirit and scope of the invention as defined by theappended claims.

A system 100 is shown in FIG. 1 and FIG. 2 which incorporates variousfeatures of the present invention. As illustrated, the system 100includes a server computing device 110, a client computing device 120, amedical device 130 operable coupled to the client computing device 120via a communications link 140, and a network 150 which operably couplesthe client computing device 120 to the server computing device 110. Ingeneral, the system 100 automatically or semi-automatically configuresthe client computing devices 120 for communication with medical devices130 that utilize different communications protocols, and provides theserver computing device 110 remote access to the medical devices 130 viathe client computing devices 120 and the network 150.

More specifically, the system 100 comprises a set of protocol components204 which the server computing device 110 transfers to the clientcomputing devices 120. Each protocol component 204 configures the clientcomputing devices 120 for communication with a specific set of medicaldevice models or types of medical devices 130. The protocol componentsare illustratively software components which provide a set of rules thatgovern how the client computing device 120 communicates with a medicaldevice 130. Illustratively, the protocol components specify rules forsetting up, carrying out, and terminating a communications connection.The protocol components also specify the format of the informationtransmitted across the communications connection. More specifically,each protocol component 204 in the exemplary embodiment is adapted toconfigure the client computing devices 120 to send medical deviceconfiguration information, medical device version information, medicaldevice setup information, and medical device measurement data to theserver computing device 110. In addition, each protocol component 204 isadapted to configure the client computing devices 120 to send updatedconfiguration information or setup information to the medical device130.

The server computing device 110 is adapted to detect, over the network150, medical devices 130 that are operably coupled to the clientcomputing devices 120. Illustratively, the server computing device 110is adapted to query the connected medical devices 130 for medical deviceversion information, medical device configuration information, medicaldevice setup information, and medical device measurement data. While theserver computing device 110 and the client computing device 120 aretypically separate computing devices, the server computing device 110may also function as a client computing device 120. Accordingly, if amedical device 130 is coupled to a server computing device 110 that alsoprovides functionality of the client computing device 120, theninformation need not be transferred across a network 150.

Now referring to FIG. 1 in more detail, the server computing device 110of the exemplary system 100 includes a processor 112, memory 114, astorage device 116, a network interface 118, and a system bus 119. Theexemplary server computing device 110 as depicted in FIG. 1 is generallyillustrative of server computer systems and web servers manufactured byDell Computer Corporation of Round Rock, Tex., Gateway, Inc. of SanDiego, Calif., and Compaq Computer Corporation of Houston, Tex. Whilethe server computing device 110 may be implemented with a servercomputer system or web server from the above vendors, the servercomputing device 110 may alternatively, or in addition, include othercomputing devices such as network server appliances, server farms,server clusters, and/or network accessible storage devices.

The processor 112 of the exemplary server computing device 110 includesa single x86 processor from Intel or AMD. However, the processor 112 mayalternatively include one or more processors utilizing very longinstruction words, (VLIW) code morphing, complex instruction setcomputer (CISC), reduced instruction set computer (RISC), singleinstruction/multiple data (SIMD), multiple instruction/multiple data(MIMD), or other architectures from vendors such as Compaq, NationalSemiconductor Corporation, Motorola and Transmeta Corporation. Theprocessor 112 is generally operable to execute software and/or firmwareroutines stored in the memory 114. As a result of executing the softwareand/or firmware routines of the memory 114, the processor 112 controlsthe general operation of the server computing device 110. Morespecifically, the processor 112 as a result of executing software and/orfirmware routines of the memory 114 is generally operable to configurethe client computing devices 120 for communication with the medicaldevices 130. Further, the processor 112 as a result of executing thesoftware and/or firmware routines of the memory 114 is generallyoperable to configure the server computing device 110 to retrievemeasurement data from the medical devices 130 via the client computingdevices 120, archive measurement data received from the medical devices,process the measurement data received from the medical devices, and/orprovide the client computing devices 120 with processed measurementdata.

The memory 114 of the exemplary server computing device 110 is operableto store data and instructions used by the processor 112. To this end,the memory 114, in an exemplary embodiment, includes standard randomaccess memory for storing the data and software instructions needed bythe processor 112. However, the memory 114 may alternatively includeother volatile memory types such as DRAM, SDRAM, and SRAM for storingdata and software instructions and/or non-volatile memory such as ROMs,PROMs, EEPROMs, and flash memory for storing data and firmwareinstructions.

The storage device 116 of the exemplary server computing device 110 isgenerally operable to store data and/or software instructions of theexemplary server computing device 110. To this end, the storage device116 may include various computer readable and/or writeable media devicessuch as hard disk drives, floppy disk drives, CD-ROM drives, DVD-RAMdrives, RAID devices, and/or Disk-On Chip devices to name a few.Furthermore, the storage device 116 may store data in a number ofdifferent manners such as raw data to the media of the storage device116, files in a file system of the storage device 116, and/or data,records, or objects in a database of the storage device 116. Moreover,the storage device 116 may include multiple media devices and may bedistributed among several computing devices such as other servers of aserver farm, other database servers, or other network accessible storage(NAS) devices.

The network interface 118 of the exemplary server computing device 110generally operably couples the exemplary server computing device 110 tothe network 150 such that the server computing device 110 maycommunicate with the client computing devices 120 that are also operablycoupled to the network 150. To this end, the network interface 118 ofthe exemplary embodiment comprises a network interface controller suchas an Ethernet controller or Token Ring controller that connects theserver computing device 110 to the network 150 via a local area network,firewall, gateway, and/or router. However, the network interface 118 mayalternatively, or in addition, include an analog modem for use over POTStelephone lines such as a 28.8K or 56K modem, or a digital modem such asa Cable modem for use over a cable distribution network, an ISDN modemfor use over an ISDN telephone line, or a DSL modem for use over a DSLtelephone line.

The system bus 119 of the exemplary server computing device 110 isgenerally operable to interconnect the processor 112, the memory 114,the storage device 116, and the network interface 118. The system bus119 in the exemplary embodiment includes an address bus and data buswhich enable the various components of the exemplary server computingdevice 110 to communicate with one another. Furthermore, the system bus119 may be implemented with one or more buses utilizing one or more busarchitectures such as PCI, ISA, and VME.

As can be seen from FIG. 1, the exemplary client computing device 120includes a processor 122, memory 123, a storage device 124, a networkinterface 125, a device interface 126, one or more user I/O devices 127,and a system bus 128. The exemplary client computing device 120 asdepicted in FIG. 1 is generally illustrative of personal computersystems, desktop computer systems, and/or workstations manufactured byDell Computer Corporation of Round Rock, Tex., Gateway, Inc. of SanDiego, Calif., and Compaq Computer Corporation of Houston, Tex. Whilethe client computing device 120 may be implemented with a personalcomputer system, desktop computer system, and/or workstation from theabove vendors, the client computing device 120 may alternatively, or inaddition, include other computing devices such as network enabled (morepreferably Internet enabled) computing devices such as handheldcomputers, laptop computers, set-top boxes, network appliances, and/orgaming consoles.

The processor 122 of the exemplary client computing device 120 includesa single x86 processor from Intel or AMD. However, the processor 122 mayalternatively include one or more processors utilizing VLIW, codemorphing, CISC, RISC, SIMD, MIMD, or other architectures from vendorssuch as Compaq, National Semiconductor Corporation, and TransmetaCorporation. As a result of executing the software and/or firmwareroutines of the memory 123, the processor 122 controls the generaloperation of the client computing device 120. More specifically, theprocessor 122 as a result of executing software and/or firmware routinesof the memory 123 is generally operable to configure the clientcomputing device 120 for communication with the medical devices 130.Further, the processor 122 as a result of executing the software and/orfirmware routines of the memory 123 is generally operable to configurethe client computing device 120 to determine the medical device type ofa medical device 130 operably coupled thereto, obtain from the servercomputing device 110 a protocol component 204 (See, FIG. 2.) suited forcommunicating with the medical device 130 operably coupled thereto,and/or communicate with the medical device 130 via the protocolcomponent 204.

The memory 123 of the exemplary client computing device 120 is operableto store data and instructions used by the processor 122. To this end,the memory 123, in an exemplary embodiment, includes standard randomaccess memory for storing the data and software instructions needed bythe processor 122. However, the memory 123 may alternatively includeother volatile memory types such as DRAM, SDRAM, and SRAM for storingdata and software instructions and/or non-volatile memory such as ROMs,PROMs, EEPROMs, and flash memory for storing data and firmwareinstructions.

The storage device 124 of the exemplary client computing device 120 isgenerally operable to store data and/or software instructions of theexemplary client computing device 120. To this end, the storage device124 may include various computer readable and/or writeable media devicessuch as hard disk drives, floppy disk drives, CD-ROM drives, DVD-RAMdrives, RAID devices, and/or Disk-On Chip devices to name a few.Furthermore, the storage device 124 may store data in a number ofdifferent manners such as raw data to the media of the storage device124, files in a file system of the storage device 124, and/or data,records, or objects in a database of the storage device 124. Moreover,the storage device 124 may include multiple media devices.

The exemplary client computing device 120 may alternatively beimplemented such that the same hardware components that implement thememory 123 also implement the storage device 124. For example, theexemplary client computing device 120 may be implemented with memorychips that implement both the functionality of the memory 123 and thestorage device 124. Many special purpose computing devices such ashandheld computing devices (e.g. Palm Pilots) and Internet enabledcellular phones which could be used to implement the client computingdevice 120 are implemented in such a manner.

The network interface 125 of the exemplary client computing device 120generally operably couples the exemplary client computing device 120 tothe network 150 such that the client computing device 120 maycommunicate with the server computing device 110 via the network 150. Tothis end, the network interface 125 of the exemplary embodimentcomprises an analog modem for use over POTS telephone lines such as a28.8K or 56K modem, or a digital modem such as a Cable modem for useover a cable distribution network, an ISDN modem for use over an ISDNtelephone line, or a DSL modem for use over a DSL telephone line.However, the network interface 118 may alternatively, or in addition,include a network interface controller such as an Ethernet controller orToken Ring controller that can be used to connect the client computingdevice 120 to the network 150 via a local area network, firewall,gateway, and/or router.

As shown, the exemplary client computing device 120 further includes thedevice interface 126. The device interface 126 is generally operable toestablish a physical communications link 140 between the clientcomputing device 120 and the medical device 130. To this end, the deviceinterface 126 of the exemplary client computing device 120 includes astandard RS-232 serial port to which the medical device 130 may beoperably coupled via an RS-232 cable.

However, the device interface 126 may alternatively, or in addition,include other communications mechanisms such as a parallel port, a SCSIport, a USB port, a 1394 port (i.e. FireWire or I-Link port), a FibreChannel port, a network interface controller, or some other type ofcommunications port to which a user may couple a correspondingcommunications port of the medical device 130 via an appropriate cableor connector. The device interface 126 may alternatively, or inaddition, include wireless technologies such as RF and/or IRtransmitter/receivers to establish the physical communications link 140between the client computing device 120 and the medical device 130.

As depicted, the client computing device 120 includes one or more userI/O devices 127. The user I/O devices 127 in general provide a user ofthe client computing device 120 with mechanisms for entering informationinto the client computing device 120, receiving information from theclient computing device 120, and/or controlling the operation of theclient computing device 120. For example, the user I/O devices 127 mayinclude cathode ray tubes (CRT), liquid crystal displays (LCD), lightemitting diodes (LED), printers, and/or other output devices that areoperable to visually present information to a user of the exemplaryclient computing device 120. The user I/O devices 127 may also includesound cards, wave generators, sequencers, mixers, speakers, and/or otheraudio devices that are used to audibly present information to a user ofthe exemplary client computing device 120.

Further, the user I/O devices 127 may include a mouse, a keyboard, atouch pad, a push button, a scanner, a stylus, a touch screen, and/orother input devices that provide a user of the exemplary clientcomputing device 120 with an interface to directly control the operationof the exemplary client computing device 120 and/or indirectly controlthe operation of the server computing device 110 and the medical device130.

The system bus 128 is generally operable to interconnect the processor122, the memory 123, the storage device 124, the network interface 125,the device interface 126, and the user I/O devices 127. To this end, thesystem bus 128 in the exemplary embodiment includes bus lines and/ortraces which enable the various components of the exemplary clientcomputing device 120 to communicate with one another. Furthermore, thesystem bus 128 may be implemented with one or more buses utilizing oneor more bus architectures such as PCI, ISA, and VME.

As shown, the system 100 further includes a medical device 130. Themedical device 130 of the system 100 is generally operable to monitorone or more biological/physiological conditions and communicate with theclient computing device 120 via the physical communications link 140established between the client computing device 120 and the medicaldevice 130. In an exemplary embodiment, the medical device 130 includesa glucose meter such as the glucose meters manufactured by RocheDiagnostics Corporation which are generally operable to measure bloodglucose levels of blood applied to test strips. While the medical device130 of the exemplary embodiment includes a glucose meter, the medicaldevice 130 could be implemented to monitor and/or analyze otherbiological/physiological parameters or conditions such as body fluids orbodily functions (e.g. blood, urine, saliva), bodily signals (e.g.electrocardio-signals, brain waves, blood pressure waves), and/or otherbodily stimuli (e.g. respiration) to obtain measurements of bloodpressure, blood gases, blood coagulation, electrolytes, cardiovascularactivity, drug levels, respiration rate, stress, etc.

As can be seen from FIG. 1, the exemplary medical device 130 includes aprocessor 132, memory 133, a communications interface 136, one or moreuser I/O devices 137, and a system bus 138. The processor 122 of theexemplary medical device 130 includes a single microprocessor ormicrocontroller; however, the processor 122 may alternatively includemore than one processor. As a result of executing the software and/orfirmware routines of the memory 133, the processor 132 controls thegeneral operation of the medical device 130. More specifically, theprocessor 132 as a result of executing software and/or firmware routinesof the memory 133 is generally operable to configure the medical device130 to obtain measurement data indicative of a biological/physiologicalcondition.

Further, the processor 132 as a result of executing the software and/orfirmware routines of the memory 133 is generally operable to controlcommunication between the client computing device 120 and the medicaldevice 130 in accordance with a particular communications protocol whichmay be specific to the medical device 130. In an exemplary embodiment,the system 100 supports several different models and/or types of medicaldevices 130 which may use different communications protocols. Ingeneral, these different models and/or types of medical devices 130 mayutilize protocols that define different procedures for formatting dataand the procedure used to transfer the data. For example, differentmedical devices 130 may utilize (i) a different message or packetformat, (ii) a different transfer rate, (iii) a different errordetection scheme, (iv) a different error correction scheme, (v) adifferent command set, and/or (vi) a different compression scheme toname a few.

The memory 133 of the exemplary medical device 130 is operable to storedata and instructions used by the processor 132. To this end, the memory133, in an exemplary embodiment, includes random access memory forstoring data, software instructions, and/or other information needed bythe processor 132. However, the memory 133 may alternatively includeother volatile memory types such as DRAM, SDRAM, and SRAM for storingdata and software instructions and/or non-volatile memory such as ROMs,PROMs, EEPROMs, and flash memory for storing data and firmwareinstructions.

As shown, the exemplary medical device 130 further includes thecommunications interface 136. The communications interface 136 isgenerally operable to establish the physical communications link 140between the client computing device 120 and the medical device 130. Tothis end, the communications interface 136 of the exemplary medicaldevice 130 includes a standard RS-232 serial port to which the clientcomputing device 120 may be operably coupled via an RS-232 cable.

The communications interface 136, however, may alternatively, or inaddition, include other communications mechanisms such as a parallelport, a SCSI port, a USB port, a 1394 port (i.e. FireWire or I-Linkport), a Fibre Channel port, a network interface controller, or someother type of communications port to which a user may couple acorresponding communications port of the client computing device 120 viaan appropriate cable or connector. The communications interface 136 mayalternatively, or in addition, include wireless technologies such as RFand/or IR transmitter/receivers to establish the physical communicationslink 140 between the client computing device 120 and the medical device130.

The medical device 130 further includes one or more user I/O devices137. The user I/O devices 137 in general provide a user of the medicaldevice 130 with mechanisms for entering information into the medicaldevice 130, receiving information from the medical device 130, and/orcontrolling the operation of the medical device 130. For example, theuser I/O devices 137 may include cathode ray tubes (CRT), liquid crystaldisplays (LCD), light emitting diodes (LED), printers, and/or otheroutput devices that are operable to visually present information to auser of the exemplary medical device 130. The user I/O devices 137 mayalso include sound cards, wave generators, sequencers, mixers, speakers,and/or other audio devices that are used to audibly present informationto a user of the exemplary medical device 130.

Further, the user I/O devices 137 of the medical device 130 may includea mouse, a keyboard, a touch pad, a push button, a scanner, a stylus, atouch screen, and/or another input device that provides a user of theexemplary medical device 130 with an interface to directly control theoperation of the exemplary medical device 130. The medical device 130may also be implemented with no user I/O devices 137, and simplyleverage the user I/O devices 127 of the client computing device 120.However, even a medical device 130 that highly leverages the user I/Odevices 127 of the client computing device 120 will usually still have afew user I/O devices 137 such as an LED that provides visual feedbackthat the medical device 130 is powered, an LED that provides visualfeedback that the physical communications link 140 has been established,and/or a button or switch to power the medical device 130 on or off.

The system bus 138 is generally operable to interconnect the processor132, the memory 133, the communications interface 136, and the user I/Odevices 137. To this end, the system bus 138 in the exemplary embodimentincludes bus lines and/or traces which enable the various components ofthe medical device 130 to communicate with one another. Furthermore, thesystem bus 138 may be implemented with one or more buses utilizing oneor more bus architectures such as PCI, ISA, VME, and PC-104.

As depicted in FIG. 1, the network 150 of the exemplary system 100operably couples the client computing device 120 to the server computingdevice 110. The network 150 may illustratively include multiple publicor private LANs and/or WANs (not shown) that are operably coupled to oneanother via routers, switches, hubs, gateways, proxies, and/or firewalls(not shown). In an exemplary embodiment, the network 150 utilizes theInternet to provide ubiquitous access to the server computing device 110from the client computing devices 120.

Referring now to FIG. 2, a functional block diagram illustrates theinteraction of data and functional components of the exemplary system100. In general, the functional components depicted in FIG. 2 areimplemented with software and/or firmware that is executed by the servercomputing device 110 and the client computing device 120. While thefunctional components of FIG. 2 are implemented via software and/orfirmware and are so described below, those skilled in the art may electto implement all or portions of the functional components with discreteanalog circuit components, discrete digital circuit components,integrated analog circuits, integrated digital circuits, and/orintegrated analog/digital hybrid circuits without undue experimentationand such implemented functional components may replace all or a portionof the hardware components illustrated in FIG. 1.

As illustrated, the exemplary server computing device 110 includes aserver transport agent 202, protocol components 204, device data 206,patient data 208, and device identification components 214. Furthermore,the exemplary client computing device 120 includes a user interface 210,a client transport agent 212, a device identification component 214, anupdate component 216, and a protocol component 204.

The server transport agent 202 and the client transport agent 212respectively configure the server computing device 110 and the clientcomputing device 120 for communication therebetween via the network 150.In an exemplary embodiment, the server transport agent 202 and theclient transport agent 212 configure the server computing device 110 andclient computing device 120 to utilize the HTTP (hypertext transportprotocol) over the TCP/IP network protocol. To this end, the servertransport agent 202 of the exemplary embodiment comprises an HTTP serverthat is operable to receive HTTP requests from one or more clientcomputing devices 120 and provide the client computing devices 120 withthe requested information. The server transport agent 202 may includeany one of a number of currently available HTTP servers or webapplication servers such as the Internet Information Server availablefrom Microsoft Corporation, the Apache HTTP Server available from theApache Group, and the Zope web application server available from DigitalCreations, Inc. The server transport agent 202 may support othertransport protocols such as FTP, TFTP, SMTP, etc. or other networkprotocols such as UDP, SMB, NetBUI, etc. in addition to or instead ofthe HTTP protocol and the TCP/IP protocols.

As illustrated, the server computing device 110 comprises severalprotocol components 204 that when transferred to a client computingdevice 120 configure the client computing device 120 to use a particularcommunications protocol when communicating with an identified medicaldevice 130. As indicated above, the exemplary system 100 supportsmedical devices 130 which utilize different communications protocols.Accordingly, the server computing device 110 maintains protocolcomponents 204 which when executed by the client computing device 120cause the client computing device 120 to communicate with a medicaldevice 130 in the proper communications protocol for the medical device130. To this end, the exemplary server computing device 110 maintains aseparate protocol component 204 for each type of medical device 130 thatthe system 100 supports.

The server computing device 110 may alternatively include protocolcomponents 204 that support more than one communications protocol orthat can configure the client computing device 130 to communicate withmore than one type of medical device 130. While including multiplefunctionality into a single protocol component 204 reduces the number ofprotocol components 204 that the server computing device 110 needs tomaintain, these multi-functional protocol components 204 are also likelyto be larger in size than a protocol component 204 that merelyimplements a communications protocol for a single type of medical device130. A larger protocol component 204 takes longer to transfer to theclient computing device 120; however, a client computing device 120 thatis used with several types of medical devices 130 may more than recoupthis transfer time by not needing to download as many protocolcomponents 204 from the server computing device 110.

In the exemplary embodiment, the protocol components 204 are implementedas ActiveX components which can be downloaded and executed by the clientcomputing device 120 via a web browser. However, the protocol components204 may also be implemented using other software technologies such asCOM, DCOM, Java, JavaScript, VBScript, Perl, Python, as well as nativeapplications written in the language of the developers choice whichcould be executed on the client computing device 120 via various RPCtechniques. Furthermore, by utilizing interpreted languages such asJavaScript and VBScript or byte compiled languages such as Java, Perl,and Python, the server computing device 110 may maintain a singleversion of a protocol component 204 or a small number of versions of aparticular protocol component 204 in order to support a wide range ofclient computing device platforms (i.e. hardware and operating systemcombinations.) In other words, the server computing device 110 may beefficiently implemented to supported a wide range of client computingdevices 110 (e.g. computer systems using the McIntosh, Windows, and/orLinux operating systems, Palm Pilots, Handspring Visors, Internetenabled cellular phones, etc.).

As illustrated in FIG. 2, the server computing device 110 also includesdevice data 206 and patient data 208 stored in the memory 114 and/or thestorage device 116. The device data 206 generally includes informationregarding types of medical devices 130 that the system 100 supports andwhich of the protocol components 204 supports a certain medical device130. The server computing device 110 utilizes the device data 206 todetermine which of the protocol components 204 is the proper protocolcomponent 204 for a given medical device 130 so that the proper protocolcomponent 204 is transferred to the client computing device 120 ifneeded.

The patient data 208 generally includes biological and/or physiologicaldata collected from patients being monitored by the system 100.Moreover, the patient data 208 may further include patientidentification information (e.g. name, date of birth, address, etc) andauthentication information (e.g. username/password, web cookie text,client computing device address, medical device serial number, clientcomputing device network address, etc.) which may be used to verify theidentify of a given patient and/or correlate a given patient with priorbiological/physiological data collected by the server computing device110. The system 100 may also allow anonymous access in which case theserver computing device 110 may maintain no patient data or may maintainpatient data in an anonymous manner that still enables a patient toobtain their collected biological/physiological data. Anonymous accessenables a patient to retrieve, view, and/or analyze the currentbiological/physiological data of the medical device 130 without fear ofsomeone tying the data to the patient.

The user interface 210 of the client computing device 120 is generallyoperable to provide a user (e.g. a patient, nurse, physician, etc.) witha mechanism for controlling operation of the system 100 in regard to theclient computing device 120 and the medical device 130. Morespecifically, the user interface 210 of the exemplary embodiment isoperable to display HTML (hyper-text markup language) documents and HTMLforms. However, the user interface 210 could display information inother formats such RTF, PDF, and ASCII Text or other markup languageformats such as SGML, XML, Tex, and/or LaTeX.

In an exemplary embodiment, the user interface 210 and the clienttransport agent 212 described above are implemented with a standard webbrowser such as Internet Explorer available from Microsoft Corporationof Redmond, Wash. or Netscape Communicator available from NetscapeCommunications Corporation of Mountain View, Calif. and the TCP/IPprotocol portion of the client transport agent 212 is implemented withthe TCP. These standard web browsers among other things are operable tosend and receive packets of information that conform to the HTTP and theTCP/IP protocols, send requests for HTML documents, receive HTMLdocuments, display HTML documents, and send data that a user has inputinto a HTML form.

Alternatively, the user interface 210 may be implemented as a nativecustom application of the client computing device 120 that isspecifically designed for the system 100. The custom application couldbe implemented to display HTML and other markup language documents in amanner similar to a standard web browser. However, the customapplication is more likely to be implemented to receive information fromthe server computing device 110 in a non-markup language format, anddisplay the information via a customized graphical interface.

The device identification component 214 of the exemplary clientcomputing device 120 generally causes the client computing device 120 toidentify the medical device 130 without the need for the user to enteridentifying information for the medical device 130. To this end, thedevice identification component 214 in an exemplary embodiment scans apredetermined port of the client computing device 120 to determine thetype of medical device 130 operably coupled to the predetermined port.The exact procedure that the device identification component 214utilizes to identify the medical device 130 operably coupled to theclient computing device 120 depends upon the communications protocolsutilized by the medical devices supported by the system 100. Severalknown techniques may be used such as identifying the medical device 130based upon (i) responses received from the medical device 130 due tostimulus signals applied to the medical device 130, (ii) identificationcodes retrieved from the medical device 130, (iii) serial numbersretrieved from the medical device 130, and/or (iv) other informationretrieved from the medical device 130. It is understood that deviceidentification component 214 may include a manual device identificationsuch as a drop down box, check box, or other manual entry.

Besides merely scanning a predetermined port for the medical device 130,the device identification component 214 may allow a user to specify viathe user interface 210 to which port the medical device 130 is operablycoupled. Further, the identification component 214 could simply scan allports of a particular type (e.g. all USB ports, all SCSI ports, allparallel ports, wireless interfaces, etc) or scan a user-definable setof ports.

In an exemplary embodiment, the device identification component 214comprises an executable program or script which when executed by theclient computing device 120 generally causes the client computing device120 to identify the medical device 130 as described above. The deviceidentification component 214 may alternatively comprise hardware,firmware, or a combination of hardware, firmware, and/or software thatconfigure the client computing device 120 to identify the medical device130.

The update component 216 in general ensures that the client computingdevice 120 utilizes the proper protocol component 204 for the identifiedmedical device 130. To this end, the update component 216 in anexemplary embodiment generally determines which protocol components 204(if any) are currently stored in the memory 123 and/or the storagedevice 124 of the client computing device 120 and whether any of theprotocol components 204 of the client computing device 120 is the properprotocol component 204 for the identified medical device 130. If theupdate component 216 determines that client computing device 120 doesnot have a copy of the proper protocol component 204 for the identifiedmedical device 130, then the update component 216 operates inconjunction with the client transport agent 212 to obtain a copy of thecorrect protocol component 204 from the server computing device 110.

While the update component 216 could be implemented as a separatesoftware, firmware, and/or hardware component, the update component 216in an exemplary embodiment is implemented with the standard web browserthat is also used to implement the user interface 212 and transportagent 214 of the client computing device 120. Web browsers generallyprovide mechanisms which enable remote computer systems such as theserver computing device 110 to cause the client computing device 120 toexecute software routines. For example, many web browsers supportexecution of Java Applets, JavaScript, ActiveX Controls, and other typesof software technologies by which the server computing device 110 cancause the client computing device 130 to execute software in response toinformation received from the server computing device 110.

Moreover, web browsers generally also include the ability to determinewhether a particular software component such as an ActiveX Control, aplug-in application, or a Java Applet is already installed on the clientcomputing device 120 in response to information received from a servercomputing device 110. Further, web browsers generally also include theability to determine the version of such installed software components.Web browsers also generally include the ability to download and installvia the client transport agent 212 a needed software component such asan ActiveX Control, a plug-in application, or a Java Applet from theserver computing device 110 in response to information received from theserver computing device 110.

Moreover, web browsers also generally include the ability to cacheinformation received from a server computing device 110 and determinewhether the information in the cache is up-to-date with correspondinginformation of the server computing device 110. In this manner, the webbrowser of the client computing device 120 can prevent the repetitivetransfer of the same information from the server computing device 110 tothe client computing device 120. In other words, if the client computingdevice 120 requests a particular resource from the server computingdevice 110 and the client computing device 120 already has a copy ofthat resource in the cache, then the web browser can cause the clientcomputing device 120 to use the cached version of the resource, thuseliminating a transfer of the resource from the server computing device110 to the client computing device 120.

As indicated above, the protocol components 204 generally configure theclient computing device 120 to use a particular communications protocolwhen communicating with an identified medical device 130. The exemplarysystem 100 supports medical devices 130 which utilize differentcommunications protocols. Accordingly, the server computing device 110maintains protocol components 204 which when executed by the clientcomputing device 120 cause the client computing device 120 tocommunicate with a medical device 130 in the proper communicationsprotocol for the medical device 130. In an exemplary embodiment, theprotocol components 204 comprise software such as Java Applets,JavaScripts, ActiveX Controls, etc. which is executed by the clientcomputing device 130 in response to information received from the servercomputing device 110.

A flowchart depicting an exemplary method of operation 300 isillustrated in FIG. 3. As illustrated, the exemplary method 300 beginsin step 302 with establishing a physical communications link 140 betweenthe client computing device 120 and the medical device 130. In anexemplary embodiment, a user of the system establishes the physicalcommunications link 140 by coupling a interface cable between a port(e.g. serial I/O port) of the medical device 130 and a correspondingport (e.g. COM port 1) of the client computing device 120. However, ifthe medical device 130 includes a wireless communication mechanism suchas IR and/or RF transmitters/receivers, then the physical communicationslink 140 is established by simply placing the medical device 130 withintransmission range of the corresponding IR and/or RFtransmitters/receivers of the client computing device 120.

In step 304 of the exemplary method 300, the client computing device 120establishes communications with the server computing device 110. In anexemplary embodiment, the client computing device 120 establishescommunications with the server computing device 110 in response to auser requesting via the user interface 210 that the client transportagent 212 establish communications with the server computing device 110.In particular, the user in the exemplary embodiment requests via a webbrowser of the user interface 210 that the web browser connect to theserver computing device 110 and associated transport agent 202identified by a particular URI (Universal Resource Identifier), URL(Universal Resource Locator), PURL (Persistent Uniform Resource Locator)and/or URN (Universal Resource Name).

The server computing device 110 in step 306 attempts to authenticate theuser, the client computing device 120, and/or the medical device 130. Inan exemplary embodiment, the server computing device 110 attempts toauthenticate the user, the client computing device 120, and/or themedical device 130 via various authentication schemes in order to enablea user to retrieve previously collected biological/physiological data,and/or ensure that collected biological/physiological data is keptprivate. In an exemplary embodiment, the user via the user interface 210enters a username and password which the server computing device 110compares to username/password pair of the maintained patient data 208 todetermine whether the user has entered a valid username/password pair.However, in environments where security/privacy is not a concern, analternative embodiment of the server computing device 110 does notauthenticate the user, the client computing device 120, and/or themedical device 130. It should be appreciated that other authenticationmethods are also suitable. For example, authentication may be basedfurther upon or alternatively upon the network address of clientcomputing device 120, the serial number of the medical device 130,stored authentication keys (e.g. PGP keys), etc.

In step 308, the server computing device 110 determines whether theattempt to authenticate the user, the client computing device 120,and/or the medical device 130 succeeded. In an exemplary embodiment inwhich the server computing device 110 utilizes username/password pairsfor authentication, the server computing device 110 determines that theauthentication attempt failed if the received username/password pair isinvalid. In step 310, the server computing device 110 performs variousother actions in response to receiving an invalid username/password pairsuch as logging the invalid username/password pair, logging the networkaddress of the client computing device 120, blocking connections fromthe client computing device 120 if a threshold number of attempts isexceeded, etc. After performing the various action of step 308, theserver computing device 110 returns to step 306 in order to re-attemptto authenticate the user, the client computing device 120, and/or themedical device 130.

The device identification component 214 of the client computing device120 in step 312 provides the server computing device 110 with deviceinformation from which the server computing device 110 determines theproper protocol component 204 to be used with the medical device 130. Asindicated above, the device identification component 214 generallyinterrogates the medical device 130 via a series of signals, receivessignals from the medical device 130 in response to the interrogation,and discerns the type of medical device 130 connected to the clientcomputing device 120 based upon the signals received from the medicaldevice 130. The signals received from the medical device 130 may includeACK signals or other signals indicative of information such as a serialnumber, model number, device type, version number, etc. At any rate, thedevice identification component 214 provides the server computing device110 with device information via the client transport agent 212 fromwhich the server computing device 110 ascertains the type of medicaldevice 130 operably coupled to the client computing device 120.

The server computing device 110 then determines in step 314 the properprotocol component 204 to communicate with the identified medical device130. In particular, the server computing device 110 in the exemplaryembodiment utilizes the device data 206 and the device informationreceived from the device identification component 214 to select theproper protocol component 204 for the client computing device 120 to usein communicating with the identified medical device 130.

The server computing device 110 in step 316 provides the updatecomponent 216 of the client computing device 120 with protocol componentinformation that identifies the proper protocol component 204 to be usedwith the identified medical device 130. In an exemplary embodiment, theserver computing device 110 merely transfers to the client computingdevice 120 an HTML document that includes a reference to the properActiveX Control for the client computing device 120 to execute in orderto communicate with the medical device 130.

As result of receiving the protocol component information from theserver computing device 110, the client computing device 120 in step 318determines whether the client computing device 120 needs to receive acopy of the proper protocol component 204 from the server computingdevice 110. In an exemplary embodiment, the web browser of the userinterface 210 processes an HTML document received from the servercomputing device 110 which causes the update component 216 to verifythat the client computing device 120 already has a current version ofthe proper protocol component 204 referenced by the HTML document. Ifthe update component 216 determines that the client computing device 120already has the current version, then the client computing device 120proceeds to step 312 in order to communicate with the medical device 130via the protocol component 204.

If the client computing device 120 determines that the client computingdevice 120 needs a copy of the proper protocol component 204, then theclient computing device 120 in step 320 receives a copy of the properprotocol component 204 from the server computing device 110. Inparticular, the client transport agent 212 in an exemplary embodimentretrieves a copy of the proper protocol component 204 from the locationspecified in an HTML document received from the server computing device110.

The update component 216 of the client computing device 120 ensures thatthe client computing device 120 includes the proper protocol component204 for the medical device 130. As a result, the client computing device120 communicates with the medical device 130 utilizing the properprotocol component 204 even if the protocol component 204 is laterrevised and even if the client computing device 120 did not previouslyhave the proper protocol component 204 for the medical device 130.

The client computing device 120 then in step 322 executes the properprotocol component 204 in order to transfer data and/or controlinformation between the client computing device 120 and the medicaldevice 130. In an exemplary embodiment, the client computing device 120executes the proper protocol component 204 referenced by the HTMLdocument received from the server computing device 110.

As a result of executing the proper protocol component 204, the clientcomputing device 120 performs various operations in regard tocommunicating with the medical device 130 on the behalf of the clientcomputing device 120 and/or the server computing device 110. Forexample, the server computing device 110 may cause client computingdevice 120 to issue commands to the medical device 130 via the protocolcomponent 204 which cause the medical device 130 to adjust an internalclock, clear stored measurement data, retrieve stored measurement data,update calibration or other parameters used to obtain measurement data,perform a test to obtain measurement data, or other tasks.

Similarly, the server computing device 110 may cause the clientcomputing device 120 to transfer measurement data, device status data,etc. from the medical device 130 to the server computing device 110.More specifically, the client computing device 120 obtains the data fromthe medical device 130 via the protocol component 204, and aftercompleting the transfer of data from the medical device 130 to theclient computing device 120, the client computing device 120 transfersthe data to the server computing device 110. However, the clientcomputing device 120 may alternatively begin the transfer of receiveddata to the server computing device 110 before receiving all of therequested data from the medical device 130.

As indicated above, some of the operations performed on behalf of theserver computing device 110 cause the client computing device 120 toprovide the server computing device 110 with data such as measurementdata, device status data, etc. Accordingly, the server computing device110 in step 322 processes data received from the measurement device 130via the client computing device 120. For example, the server computingdevice 110 in an exemplary embodiment stores measurement data receivedfrom the client computing device 120 with the patient data 208 such thatthe measurement data is associated with the user, client computingdevice 120, and/or medical device 130 authenticated in step 306. In thismanner, the sever computing device 110 maintains historic measurementdata for an authenticated user, client computing device 120, and/ormedical device 130. In response to a request received from the clientcomputing device 120, the server computing device 110 at later dateretrieves and/or analyzes the historic data for the authenticated user,the client computing device 120, and/or the medical device 130. Further,the server computing device 110 provides the client computing device 120with results data in the form of a HTML document that includes tables,charts, graphs, explanations, etc. to aid in assessing the meaning ofthe current measurement data and/or the historic measurement data.

Alternatively, the server computing device 110 simply analyzes thereceived measurement data and provides the client computing device 120with results data that is representative of such analysis withoutstoring the measurement data for future retrieval and analysis. In thismanner, the server computing device 110 provides a user an anonymousmechanism for analyzing their current measurement data.

A flowchart depicting another exemplary method of operation 400 isillustrated in FIG. 4. As illustrated, the exemplary method 400 beginsin step 402 with establishing a physical communications link 140 betweenthe client computing device 120 and the medical device 130 as describedabove in regard to FIG. 3.

In step 404, the client computing device 120 establishes communicationswith the server computing device 110. In an exemplary embodiment, theclient computing device 120 establishes communications with the servercomputing device 110 in response to a user requesting via the userinterface 210 that the client transport agent 212 establishcommunications with the server computing device 110. In particular, theuser in the exemplary embodiment requests via a web browser of the userinterface 210 that the web browser connect to a particular servercomputing device 110 and associated transport agent 202 identified by aparticular URI (Universal Resource Identifier), URL (Universal ResourceLocator), PURL (Persistent Uniform Resource Locator) and/or URN(Universal Resource Name) which services medical devices 130 of aparticular family or type. By utilizing different URLs for differentmodels of medical devices 130, different types of medical devices 130,different classes of medical devices 130, and/or different manufacturersof medical devices 130, the URL essentially provides a mechanism toidentify or partially identify the medical device 130 attached to theclient computer system 120. For example, a first URL may be defined fora first model of glucose meters, a second URL may be defined for a classof glucose meters which have similar capabilities, and a third URL maybe defined for all cholesterol meters of a certain manufacturer.

The server computing device 110 in step 406 attempts to authenticate theuser, the client computing device 120, and/or the medical device 130 ina manner similar to step 306 of FIG. 3. In step 408, the servercomputing device 110 determines whether the attempt to authenticate theuser, the client computing device 120, and/or the medical device 130succeeded in a manner similar to step 308 of FIG. 3. In step 410, theserver computing device 110 performs various other actions in responseto receiving an invalid username/password pair such as logging theinvalid username/password pair, logging the network address of theclient computing device 120, blocking connections from the clientcomputing device 120 if a threshold number of attempts is exceeded, etcand returns to step 406 in order to re-attempt to authenticate the user,the client computing device 120, and/or the medical device 130.

In step 412, the client computing device 120 provides the servercomputing device 110 with information from which the server computingdevice 110 may determine whether the client computing device 120 has anappropriate device identification component 214 for the medical device130. For example, the client computing device 120 may provide the servercomputing device 110 with a version number, filename, byte length,checksum value, or other information about the current deviceidentification component 214 (if any) of the client computer device 120.

From the information received from the client computing device 120 anddata maintained by the server computing device 110, the server computingdevice 110 in step 414 determines whether to transfer an identificationcomponent 214 to the client computing device 120. In an exemplaryembodiment, the server computing device 110 determines that anidentification component 213 needs to be transferred to the clientcomputing device 120 if the client computing device 120 does not have anidentification component 214 for the type of medical device 130 attachedto the client computing device 110, or if the identification component214 of the client computing device 120 is not the latest version of theidentification component 214 for the type of medical device 130 attachedto the client computing device 120.

As described above in regard to steps 412 and 414, the client computingdevice 120 essentially provides the server computing device 110 withinformation from which the server computing device 110 determines theappropriateness of the identification component 214 of the clientcomputing device 120. However, it should be appreciated thatalternatively the server computing device 110 may provide the clientcomputing device 120 with information from which the client computingdevice 120 determines for itself the appropriateness of theidentification component 214 of the client computing device 120. Inparticular, the client computing device 120 may determine whether theidentification component 214 of the client computing device 120 needs tobe updated in a manner similar to steps 316 and 318 of FIG. 3.

If the server computing device 110 determines an identificationcomponent 214 is to be transferred to the client computing device 120,then the server computing device 110 in step 416 causes theidentification component 214 to be transferred to the client computingdevice 120. As should be appreciated, the server computing device 110utilizes various data transfer techniques to transfer the identificationcomponent 214 to the client computing device 120 such as FTP transfer,HTTP transfer, remote copy, etc. In particular, the server computingdevice 110 in an exemplary embodiment provides the web browser of theuser interface 210 with an HTML document which when processed by the webbrowser causes the client computing device 120 to download and executethe identification component 214 from the server computing device 110 oranother computing device.

In step 418, the client computing device 120 provides the servercomputing device 110 with device information from which the servercomputing device 110 determines the proper protocol component 204 to beused with the medical device 130. As indicated above, the deviceidentification component 214 interrogates the medical device 130 via aseries of signals, receives signals from the medical device 130 inresponse to the interrogation, and discerns the type of medical device130 connected to the client computing device 120 based upon the signalsreceived from the medical device 130. The signals received from themedical device 130 include ACK signals and/or other signals that areindicative of information such as a serial number, model number, devicetype, version number, etc. At any rate, the device identificationcomponent 214 provides the server computing device 110 with deviceinformation via the client transport agent 212 from which the servercomputing device 110 ascertains the type of medical device 130 operablycoupled to the client computing device 120.

The server computing device 110 then determines in step 414 the properprotocol component 204 to communicate with the identified medical device130. In step 416, the server computing device 110 causes the properprotocol component 204 to be used with the identified medical device 130to be transferred to the client computing device 120. To this end, theserver computing device 110 provides the client computing device 120with a location from which the client computing device 120 downloads theproper protocol component 204. However, it should be appreciated thatinstead of the client computing device 120 downloading the informationfrom the location identified by the server computing device 204, theserver computing device 110 could alternatively upload the protocolcomponent 204 to the client computing device 120 or causing anothercomputing device to upload the protocol component 204 to the clientcomputing device 120.

The client computing device 120 then in step 424 executes the properprotocol component 204 in order to transfer data and/or controlinformation between the client computing device 120 and the medicaldevice 130. As a result of executing the proper protocol component 204,the client computing device 120 performs various operations in regard tocommunicating with the medical device 130 on the behalf of the clientcomputing device 120 and/or the server computing device 110. Forexample, the server computing device 110 may cause client computingdevice 120 to issue commands to the medical device 130 via the protocolcomponent 204 which cause the medical device 130 to adjust an internalclock, clear stored measurement data, retrieve stored measurement data,update calibration or other parameters used to obtain measurement data,perform a test to obtain measurement data, or other tasks.

Similarly, the server computing device 110 may cause the clientcomputing device 120 to transfer measurement data, device status data,etc. from the medical device 130 to the server computing device 110.Accordingly, the server computing device 110 in step 426 processes datareceived from the measurement device 130 via the client computing device120 in a manner similar to step 324 of FIG. 3.

A flowchart depicting yet another exemplary method of operation 500 isillustrated in FIG. 5. As illustrated, the exemplary method 400 beginsin step 502 with establishing a physical communications link 140 betweenthe client computing device 120 and the medical device 130 as describedabove in regard to FIG. 3.

In step 504, the client computing device 120 establishes communicationswith the server computing device 110. In an exemplary embodiment, theclient computing device 120 establishes communications with the servercomputing device 110 in response to a user requesting via the userinterface 210 that the client transport agent 212 establishcommunications with the server computing device 110. In particular, theuser in the exemplary embodiment requests via a web browser of the userinterface 210 that the web browser connect to a particular servercomputing device 110 and associated transport agent 202 identified by aparticular URI (Universal Resource Identifier), URL (Universal ResourceLocator), PURL (Persistent Uniform Resource Locator) and/or URN(Universal Resource Name) which services medical devices 130 of aparticular model, class, and/or manufacturer. By utilizing differentURLs for different models, different types, different classes, and/ordifferent manufacturers of medical devices 130, the URL essentiallyprovides a mechanism to identify or partially identify the medicaldevice 130 attached to the client computer system 120. For example, afirst URL may be defined for a first model of glucose meters, a secondURL may be defined for a class of glucose meters which have similarcapabilities, and a third URL may be defined for all cholesterol metersof a certain manufacturer.

In an exemplary embodiment, the client computing device 120 in step 504provides the user of the medical device 130 with a list of medicaldevice from which to select the model, type, class, and/or manufacturerof the medical device 130 coupled to the client computing device 120. Inthe exemplary embodiment, the list of medical devices 130 is defined bya HTML document comprising hyper-links which when selected cause theclient computing device 120 to establish communications with the servercomputing device 110 via the proper network location (e.g. URL) for themedical device 130. The list of medical devices 130 may alternatively orin addition to be presented as one or more drop-down lists from whichthe user may select the model, type, class, and/or manufacturer of themedical device 130. Furthermore, the list of medical devices 130 may bepresented to the user via an application program that enables the userto select the model, type, class, and/or manufacturer of the medicaldevice 130 via drop-down lists, check-boxes, radio-buttons, text entryforms, and/or other data input mechanisms and that determines the propernetwork location (e.g. URL) from the received information.

In step 506, the server computing device 110 causes the proper protocolcomponent 204 to be used with the identified medical device 130 to betransferred to the client computing device 120. It should be appreciatedthat the client computing device 120 has essentially identified themodel, type, class, and/or manufacturer of the medical device 130 instep 504 via the particular URI, URL, PURL, and/or URN. Accordingly, theserver computing device 110 as a result of establishing communicationswith the client computing device 120 via the URI, URL, PURL, and/or URNprovides the client computing device 120 with a location from which theclient computing device 120 downloads the protocol component 204 for themodel, type, class, and/or manufacturer of the medical device 130.However, it should be appreciated that instead of the client computingdevice 120 downloading the information from the location identified bythe server computing device 204, the server computing device 110 couldalternatively upload the protocol component 204 to the client computingdevice 120 or cause another computing device to upload the protocolcomponent 204 to the client computing device 120.

The client computing device 120 then in step 508 executes the properprotocol component 204 in order to transfer data and/or controlinformation between the client computing device 120 and the medicaldevice 130. As a result of executing the proper protocol component 204,the client computing device 120 performs various operations in regard tocommunicating with the medical device 130 on the behalf of the clientcomputing device 120 and/or the server computing device 110. Forexample, the server computing device 110 may cause client computingdevice 120 to issue commands to the medical device 130 via the protocolcomponent 204 which cause the medical device 130 to adjust an internalclock, clear stored measurement data, retrieve stored measurement data,update calibration or other parameters used to obtain measurement data,perform a test to obtain measurement data, or other tasks.

Similarly, the server computing device 110 may cause the clientcomputing device 120 to transfer measurement data, device status data,etc. from the medical device 130 to the server computing device 110.

Accordingly, the server computing device 110 in step 510 processes datareceived from the measurement device 130 via the client computing device120 in a manner similar to step 324 of FIG. 3.

While the invention has been illustrated and described in detail in thedrawings and foregoing description, such illustration and description isto be considered as exemplary and not restrictive in character, it beingunderstood that only exemplary embodiments have been shown and describedand that all changes and modifications that come within the spirit ofthe invention are desired to be protected. For example, exemplarymethods of operation have been described as a series of sequentialsteps. However, it should be appreciated that certain steps of theexemplary methods of operation may occur in parallel or pseudo-parallel.Moreover, it should be appreciated that the order of steps is merelyexemplary and embodiments of the invention may execute steps in adifferent order than the ones depicted. Furthermore, it should beappreciated that embodiments of the invention may combine steps from oneor more of the exemplary methods depicted in FIGS. 3-5 and thatembodiments of the invention are not required to include all of thesteps of one of the exemplary methods depicted in FIGS. 3-5.

It is noted that terms like “preferably”, “commonly”, and “typically”are not utilized herein to limit the scope of the claimed invention orto imply that certain features are critical, essential, or evenimportant to the structure or function of the claimed invention. Rather,these terms are merely intended to highlight alternative or additionalfeatures that may or may not be utilized in a particular embodiment ofthe present invention.

For the purposes of describing and defining the present invention it isnoted that the term “substantially” is utilized herein to represent theinherent degree of uncertainty that may be attributed to anyquantitative comparison, value, measurement, or other representation.The term “substantially” is also utilized herein to represent the degreeby which a quantitative representation may very from a stated referencewithout resulting in a change in the basic function of the subjectmatter at issue.

Having described the invention in detail and by reference to specificembodiments thereof, it will be apparent that modification andvariations are possible without departing from the scope of theinvention defined in the appended claims. More specifically, althoughsome aspects of the present invention are identified herein as preferredor particularly advantageous, it is contemplated that the presentinvention is not necessarily limed to these preferred aspects of theinvention.

1. A first computing device for accessing a medical device operably coupled to a second computing device via a network, the first computing device comprising: a storage device comprising a plurality of protocol components that configure second computing device to communicate with a plurality of medical devices in accordance with a plurality of communications protocols supported by the plurality of medical devices; a transport agent operably coupled to the storage device and the network, the transport agent being adapted to receive from the second computing device identification information associated with a particular medical device operably coupled to the second computing device, to select from the plurality of protocol components of the storage device a protocol component to configure the second computing device for communications with the particular medical device, and transfer to the second computing device via the network the protocol component selected from the plurality of protocol components.
 2. The first computing device of claim 1, wherein the transport agent is further operable to receive measurement data from the medical device via the network in response to the second computing device communicating with medical device via the protocol component.
 3. The first computing device of claim 1, wherein the transport agent is further adapted to receive measurement data from the medical device via the network in response to the second computing device communicating with medical device via the protocol component, to receive authentication information from the second computing device via the network, and to store the measurement data in the storage device such that the measurement data and any previously received measurement data may be received from the storage device based upon the authentication information.
 4. The first computing device of claim 1, wherein the transport agent is adapted to transfer the protocol component to the second computing device via the network in accordance with the Hyper-Text Transport Protocol (HTTP).
 5. The first computing device of claim 1, wherein the storage device further comprises device data that correlates a plurality of medical device types with the plurality of protocol components, and the transport agent is further adapted to select the protocol component from the plurality of protocol components based upon the identification information and the device data.
 6. The first computing device of claim 1, wherein the transport component selects the protocol component from the plurality of protocol components that defines at least one of: a message format, a packet format, a transfer rate, an error detection scheme, an error correction scheme, a command set, a compression scheme for transferring information to and from the medical device.
 7. A first computing device for accessing a medical device operably coupled to a second computing device via a network, the first computing device comprising: a storage device comprising a plurality of protocol components that configure the second computing device to communicate with a plurality of medical devices in accordance with communications protocols supported by the plurality of medical devices; a memory comprising a plurality of instructions; a network interface adapted to communicate with the second computing device via the network; and a processor operably coupled to the storage device, the memory, and the network interface and adapted to execute the plurality of instructions to cause the processor to receive from the second computing device via the network interface identification information from which a medical device type of the medical device coupled to the second computing device is determined, to provide protocol component information to the second computing device via the network interface which identifies the protocol component from the plurality of protocol components for the second computing device to use to communicate with the medical device, and to receive measurement data from the medical device via the network interface in response to the second computing device communicating with medical device via the protocol component identified by the protocol component information.
 8. A system for providing access to a medical device, the system comprising: a first computing device; a second computing device in communication with the first computing device, the second computing device being adapted to obtain identification information from the medical device, to transfer the identification information to the first computing device, to receive protocol component information from the first computing device that identifies a protocol component to be used by the second computing device to communicate with the medical device, to determine whether the second computing device already has the protocol component identified by the protocol component information, and obtain the protocol component identified by the protocol component information from the first computing device if the second computing device does not already have the protocol component identified by the protocol component information, and wherein the first computing device is adapted to receive the identification information from the second computing device, to identify the protocol component of a plurality of protocol components, to transfer the protocol component information to the second computing device, and to transfer the protocol component to the second computing device if the second computing device does not already have the protocol component identified by the protocol component information.
 9. The system of claim 8, wherein the first computing device is further adapted to request the second computing device to obtain measurement data from the medical device and to transfer the measurement data obtained from the medical device to the first computing device, and the second computing device is further adapted to obtain the measurement data from the medical device via the protocol component identified by the protocol component information and to transfer the measurement data to the first computing device in response to receiving the request from the first computing device. 